package com.xinzhidi.web.netty.entity.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;


/**
 * 户用、单元热量协议-历史数据UpdDto对象 agreement_heat_history
 *
 * @author cx
 * @date 2023-06-17
 */
@ApiModel(value = "户用、单元热量协议-历史数据UpdDto对象")
@Data
@EqualsAndHashCode(callSuper = false)
public class AgreementHeatHistoryUpdDto {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键id")
    @NotNull(message = "主键id不能为空")
    @Min(value = 0, message = "主键id不能比0小")
    private Long id;

    @ApiModelProperty(value = "指令发送表id")
    @NotNull(message = "指令发送表id不能为空")
    @Min(value = 0, message = "指令发送表id不能比0小")
    private Long deviceInstructionId;

    @ApiModelProperty(value = "dtuId")
    @NotNull(message = "dtuId不能为空")
    @Min(value = 0, message = "dtuId不能比0小")
    private Long dtuId;

    @ApiModelProperty(value = "协议类型 4：户用热量表协议 5：单元热量表协议 ")
    @NotBlank(message = "协议类型不能为空")
    private String protocolType;

    @ApiModelProperty(value = "协议名称")
    @NotBlank(message = "协议名称不能为空")
    @Size(max = 100, message = "协议名称长度不能大于100")
    private String protocolName;

    @ApiModelProperty(value = "指令类型")
    @NotBlank(message = "指令类型不能为空")
    @Size(max = 100, message = "指令类型长度不能大于100")
    private String instructType;

    @ApiModelProperty(value = "指令名称")
    @NotBlank(message = "指令名称不能为空")
    @Size(max = 100, message = "指令名称长度不能大于100")
    private String instructName;

    @ApiModelProperty(value = "小区id")
    @NotNull(message = "小区id不能为空")
    @Min(value = 0, message = "小区id不能比0小")
    private Long plotId;

    @ApiModelProperty(value = "楼栋id")
    @NotNull(message = "楼栋id不能为空")
    @Min(value = 0, message = "楼栋id不能比0小")
    private Long buildId;

    @ApiModelProperty(value = "单元id")
    @NotNull(message = "单元id不能为空")
    @Min(value = 0, message = "单元id不能比0小")
    private Long unitId;

    @ApiModelProperty(value = "住户id")
    @NotNull(message = "住户id不能为空")
    @Min(value = 0, message = "住户id不能比0小")
    private Long householdId;

    @ApiModelProperty(value = "前缀")
    @NotBlank(message = "前缀不能为空")
    @Size(max = 100, message = "前缀长度不能大于100")
    private String prefix;

    @ApiModelProperty(value = "起始符")
    @NotBlank(message = "起始符不能为空")
    @Size(max = 100, message = "起始符长度不能大于100")
    private String startChar;

    @ApiModelProperty(value = "设备类型")
    @NotBlank(message = "设备类型不能为空")
    @Size(max = 100, message = "设备类型长度不能大于100")
    private String deviceType;

    @ApiModelProperty(value = "地址域")
    @NotBlank(message = "地址域不能为空")
    @Size(max = 100, message = "地址域长度不能大于100")
    private String address;

    @ApiModelProperty(value = "控制码")
    @NotBlank(message = "控制码不能为空")
    @Size(max = 100, message = "控制码长度不能大于100")
    private String controlCode;

    @ApiModelProperty(value = "长度域")
    @NotBlank(message = "长度域不能为空")
    @Size(max = 100, message = "长度域长度不能大于100")
    private String lengthField;

    @ApiModelProperty(value = "数据域（标识）")
    @NotBlank(message = "数据域（标识）不能为空")
    @Size(max = 100, message = "数据域（标识）长度不能大于100")
    private String dataFieldMark;

    @ApiModelProperty(value = "数据域（序列号）")
    @NotBlank(message = "数据域（序列号）不能为空")
    @Size(max = 100, message = "数据域（序列号）长度不能大于100")
    private String dataFieldSerialNumber;

    @ApiModelProperty(value = "数据域（数据）")
    @NotBlank(message = "数据域（数据）不能为空")
    @Size(max = 100, message = "数据域（数据）长度不能大于100")
    private String dataFieldData;

    @ApiModelProperty(value = "校验码")
    @NotBlank(message = "校验码不能为空")
    @Size(max = 100, message = "校验码长度不能大于100")
    private String checkCode;

    @ApiModelProperty(value = "结束符")
    @NotBlank(message = "结束符不能为空")
    @Size(max = 100, message = "结束符长度不能大于100")
    private String endMark;

    @ApiModelProperty(value = "指令集合(十六进制)")
    @NotBlank(message = "指令集合(十六进制)不能为空")
    @Size(max = 100, message = "指令集合(十六进制)长度不能大于100")
    private String instructionSet;

    @ApiModelProperty(value = "设备数据")
    @NotBlank(message = "设备数据不能为空")
    @Size(max = 100, message = "设备数据长度不能大于100")
    private String jsonData;

}
